C4Context
title 인터넷뱅킹 시스템의 구성

Person(customerA, "은행 고객 A", "개인 계좌를 보유한 은행 고객입니다.")
Person(customerB, "은행 고객 B")
Person_Ext(customerC, "은행 고객 C")
System(SystemAA, "인터넷뱅킹 시스템", "계좌 정보를 확인하고 결제할 수 있습니다.")

Person(customerD, "은행 고객 D", "개인 계좌를 보유한<br/>은행 고객입니다.")

Enterprise_Boundary(b1, "은행 내부 영역") {

  SystemDb_Ext(SystemE, "메인프레임 뱅킹 시스템", "고객과 계좌 및 거래에 관한 핵심 정보를 저장합니다.")

  System_Boundary(b2, "은행 내부 영역 2") {
    System(SystemA, "은행 시스템 A")
    System(SystemB, "은행 시스템 B", "개인 계좌를 관리하는 은행 시스템입니다.")
  }

  System_Ext(SystemC, "전자우편 시스템", "내부 Microsoft Exchange 전자우편 시스템입니다.")
  SystemDb(SystemD, "은행 시스템 D 데이터베이스", "개인 계좌를 관리하는 은행 시스템입니다.")

  Boundary(b3, "은행 내부 영역 3", "영역") {
    SystemQueue(SystemF, "은행 시스템 F 대기열", "개인 계좌를 관리하는 은행 시스템입니다.")
    SystemQueue_Ext(SystemG, "은행 시스템 G 대기열", "개인 계좌를 관리하는 은행 시스템입니다.")
  }
}

BiRel(customerA, SystemAA, "사용")
BiRel(SystemAA, SystemE, "사용")
Rel(SystemAA, SystemC, "전자우편 발송", "SMTP")
Rel(SystemC, customerA, "전자우편 발송 대상")